package com.backend.modules.notification.service;

import com.backend.modules.notification.dto.NotificationQueryDTO;
import com.backend.modules.notification.vo.NotificationVO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

public interface NotificationQueryService {
    
    /**
     * 分页查询通知
     */
    Page<NotificationVO> page(NotificationQueryDTO query, Pageable pageable);
    
    /**
     * 获取未读通知数量
     */
    long countUnread();
    
    /**
     * 标记通知为已读
     */
    void markAsRead(Long id);
    
    /**
     * 批量标记通知为已读
     */
    void markAsRead(List<Long> ids);
    
    /**
     * 标记所有通知为已读
     */
    void markAllAsRead();
    
    /**
     * 删除通知
     */
    void delete(Long id);
    
    /**
     * 批量删除通知
     */
    void delete(List<Long> ids);
} 